home *** CD-ROM | disk | FTP | other *** search
/ 10,000 Great Games / 10,000 Great Games.iso / Product / 66 / data1.cab / Source_Files / Src / Rocket.cpp < prev    next >
C/C++ Source or Header  |  2000-01-16  |  992b  |  55 lines

  1. #include "stdafx.h"
  2.  
  3. cRocket::cRocket(int _x, int _y, fix angle, cGameObject *_owner)
  4.         : cWeapon(_x, _y, rocket, angle == (fix)0? "MOVING RIGHT":angle == (fix)64? "MOVING UP":"MOVING LEFT")
  5. {
  6.     // Set speed
  7.     
  8.     set_angular_speed(ROCKET_SPEED, angle);
  9.     set_angular_acceleration(ROCKET_ACC, angle);
  10.     
  11.     // Set other
  12.     
  13.     owner = _owner;
  14.     not_owner_timeout = 2 * sec;
  15.     
  16.     push_moving_direction = FALSE;
  17.     
  18.     made_trail = sec/10 + rnd(sec/4);
  19. }
  20.  
  21. cRocket::~cRocket()
  22. {
  23. }
  24.  
  25. int cRocket::control()
  26. {
  27.     // Create trail
  28.     
  29.     if (!low_detail_level && !made_trail)
  30.     {
  31.         new cEffect (x, y, orig, "TRAIL");
  32.  
  33.         made_trail = sec/10 + rnd(sec/4);
  34.     }
  35.  
  36.     // Move
  37.  
  38.     cWeapon::control();
  39.     
  40.     // Check if we hit something
  41.     
  42.     if (explode || check_radial_hit_one(circle_bounds, TRUE) || !x_on_screen())
  43.     { 
  44.         not_owner_timeout = 0;
  45.  
  46.         check_radial_hit_more(&cCircle(0, 0, ROCKET_RADIUS));
  47.         
  48.         return FALSE;
  49.     }
  50.     
  51.     // Kill when off screen
  52.     
  53.     return on_screen();
  54. }
  55.